﻿using System;

namespace Adaptive.Foundation.Tokenizers
{
    /// <summary>
    /// Provides a list of character token types.
    /// </summary>
    public enum CharacterTokenTypes
    {
        /// <summary>
        /// Indicates nothing selected.
        /// </summary>
        None = 0,
        /// <summary>
        /// Indicates a character used for punctuation.
        /// </summary>
        Punctuation,
        /// <summary>
        /// Indicates a character used to seperate items in a list.
        /// </summary>
        Seperator,
        /// <summary>
        /// Indicates a character used to denote the start of a list.
        /// </summary>
        ListDelimiterStart,
        /// <summary>
        /// Indicates a character used to denote the end of a list.
        /// </summary>
        ListDelimiterEnd,
        /// <summary>
        /// Indicates a character used to denote the start or end of a string literal value.
        /// </summary>
        StringDelimiter,
        /// <summary>
        /// Indicates a character used as a number.
        /// </summary>
        NumberDigit,
        /// <summary>
        /// Indicates a character used for special purposes, such as high-order ASCII characters or 
        /// non-whitepsace print control characters.
        /// </summary>
        SpecialCharacter,
        /// <summary>
        /// Indicates a character used for whitespace, such as spaces, tabs, carriage-returns, etc.
        /// </summary>
        Whitespace,
        /// <summary>
        /// Indicates a character type not otherwise specified.
        /// </summary>
        Unspecified
    }
}